package service.impl;

import service.ICustomerService;

public class ICustomerServiceImpl implements ICustomerService
{
    @Override
    public int queryBalance(Long uid)
    {
        //调用mapper层进行查询即可：select money from t_money where u_id = #{u_id};
        return 0;
    }

    @Override
    public boolean expend(Long uid, Long g_id,Integer goods_count)
    {
        //1.先创建一个订单,示例：
        // insert into t_order(u_id,g_id,goods_count,create_time,update_time,o_status,o_drawback_status) values(1,2,2,now(),now(),0,0);
        //o_status(是否付款)：0表示未付款，o_drawback_status(是否退过款)：0表示该订单没有退过款

        //2.用户走支付接口...

        //3.若支付接口回调状态为true，则订单表的o_status改为 1,并对 t_money表进行扣款。
        // update t_order set update_time=now(),o_status=1 where u_id = #{u_id};
        // update t_money set money = money - 支付价格  where u_id = #{u_id};

        //三步都完成，返回true
        return true;
    }

    @Override
    public boolean drawback(Long uid, Long order_id)
    {
        //1.用户直接对 已付款的订单，进行申请退款。那么订单表的o_drawback_status，由0改为1
        //update t_order set update_time=now(),o_status = 0,o_drawback_status=1 where u_id = #{u_id};

        //2.对t_money表加上对应金额
        // update t_money set money = money + 支付价格 where u_id = #{u_id};

        //以上两步都完成，返回true
        return true;
    }

    @Override
    public int query_last_consume(Long uid, Long order_id)
    {
        //1.用户查看钱包，最近5次的支付或退款记录
        // select o_id,o_status, o_drawback_status from t_order where u_id = #{u_id} limit 5;
        // o_status为1，o_drawback_status为0 用户钱包显示 支付扣款
        // o_status为0，o_drawback_status为1 用户钱包显示 支付退款

        // 2.根据这些订单拿到支付金额。
        //写到这，发现对支付金额的处理还不是很好，大概思路如上。
        return 0;
    }
}
